const express = require( 'express' )
const logger = require( 'morgan' )
const session = require( 'express-session' )
const userRouter = require( "./routes/userRouter" )
const app = express();

app.use( logger( 'dev' ) )
// 配置session:
app.use( session( {
  name: 'web310', // cookie的名字
  secret: 'guoxinan', // 加密，解密的密钥
  cookie: { maxAge: 1000 * 10 }, // cookie的有效期，session的有效期。
  rolling: false, //更新session中cookie的失效时间,默认是false
  resave: true //重新保存
} ) )
/* 
// 自定义一个判断是否登录的中间件。
app.use( function ( req, res, next ) {
  console.log( "正在访问 req.url=====>", req.url )
  if ( req.session.user ) {
    next()
  } else if ( req.url === "/" || req.url === "/index.html" || req.url === "/login") {
    next()
  } else if ( /\.html/.test( req.url ) ) {
    res.redirect( "/index.html" )  // 重定向到登录页面
  } else if ( /(.css)|(.js)|(.css)|(.ttf)/.test( req.url ) ) {
    next()
  } else {
    res.json( { code: 4005, msg: '登录过期' } )
    // ajax请求，响应不能使用重定向！！
  }
 

  // next(); //必须要放行，不然不能响应请求。
} )
*/
app.use( express.static( __dirname + '/public' ) )
// POST请求时，不能获取参数时，就需要配置：
app.use( express.json( { limit: '10240kb' } ) )  // limit，设置 请求头body的大小。最大体积。
app.use( express.urlencoded( { extended: true } ) )// qs, querystring
// true: 使用qs库来解析参数， 处理复杂的JSON数据的参数
// false: 使用querystring库来解析参数 ， 只能处理简单的JSON数据的 参数
// 如：{a:0,b:1,c:'2342',list:[1,,343,4,{x,y,z}]}，只能用QS来解析。

app.use( "/", userRouter )

app.listen( 8888, function () {
  console.log( '服务器运行中..., http://127.0.0.1:8888 访问' )
} )

